The R markdown is available from the pulldown menu for Code at the upper-right, choose “Download Rmd”, or download the Rmd from GitHub.

Cytoscape Ecosytem

Cytoscape is a well-known bioinformatics tool for displaying and exploring biological networks. The Cytoscape Ecosytem extends beyond the desktop software to include web apps (like cytoscape.js), community-contributed collections of networks (NDEx) and apps (AppStore), and the CyREST programmatic interface. Programmatic access and interactive display via R, Python and JS enable a braod range of applications in network anlaysis and visualization, leveraging the Cytoscape Ecosystem.

Installation

RCy3 is a Bioconductor package that connects R to a locally running instance of the Cytoscape desktop software via CyREST.

The whole point of RCy3 is to connect with Cytoscape. You will need to install and launch Cytoscape:

Confirm your connection with the cytoscapePing funciton:

Load Network from NDEx

We will import a network from NDEx into the Cytoscape environment. Networks are provided a Universal Unique ID (UUID) by NDEx that can be used to reliably reference a particular network. The import method returns a Cytoscape Session Unique ID (SUID) for the imported network, enabling us to reference it in subsequent steps within a given Cytoscape session.

Copy Visual Style

One of the easiest ways to apply a visual style to a network is to copy that style from another network. This lets you work on the style of your network in Cytoscape using the interactive style editor, then save the network to NDEx for future use as a template.

The name of the template network becomes the name of its style and the set method assigns that style to another network, specified by that network’s SUID.

Save Network to NDEx

There is a one-step method to save networks from Cytoscape to NDEx. You can also control whether the network is publicly accessible or private to your account.

Note: By itself, “public” does not mean that users can find the network by searching NDEx. This is so that searches are not cluttered by networks that were convenient to make public but which are not intended for general use. To make a network findable in searches, you need to go to your account on the NDEx site and change that setting. In the context of a tutorial where you access NDEx programmatically, you can see how important this is: no one wants to find the 20,000 networks you accidentally loaded to your account because of a bug in your code.

LS0tCnRpdGxlOiAiQ3l0b3NjYXBlIEVjb3N5c3RlbSBUdXRvcmlhbCIKYXV0aG9yOiAiYnkgQWxleGFuZGVyIFBpY28iCnBhY2thZ2U6IFJDeTMKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZm9sZGluZzogIm5vbmUiCiMgIHBkZl9kb2N1bWVudDoKIyAgICB0b2M6IHRydWUgIAotLS0KYGBge3IsIGVjaG8gPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAogIGV2YWw9RkFMU0UKKQpgYGAKCipUaGUgUiBtYXJrZG93biBpcyBhdmFpbGFibGUgZnJvbSB0aGUgcHVsbGRvd24gbWVudSBmb3IqIENvZGUgKmF0IHRoZSB1cHBlci1yaWdodCwgY2hvb3NlICJEb3dubG9hZCBSbWQiLCBvciBbZG93bmxvYWQgdGhlIFJtZCBmcm9tIEdpdEh1Yl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2N5dG9zY2FwZS9jeXRvc2NhcGUtYXV0b21hdGlvbi9tYXN0ZXIvZm9yLXNjcmlwdGVycy9SL25vdGVib29rcy9pc21iLW5ldHdvcmstYW5hbHlzaXMtdHV0b3JpYWwuUm1kKS4qCgojIEN5dG9zY2FwZSBFY29zeXRlbQpDeXRvc2NhcGUgaXMgYSB3ZWxsLWtub3duIGJpb2luZm9ybWF0aWNzIHRvb2wgZm9yIGRpc3BsYXlpbmcgYW5kIGV4cGxvcmluZyBiaW9sb2dpY2FsIG5ldHdvcmtzLiBUaGUgQ3l0b3NjYXBlIEVjb3N5dGVtIGV4dGVuZHMgYmV5b25kIHRoZSBkZXNrdG9wIHNvZnR3YXJlIHRvIGluY2x1ZGUgd2ViIGFwcHMgKGxpa2UgY3l0b3NjYXBlLmpzKSwgY29tbXVuaXR5LWNvbnRyaWJ1dGVkIGNvbGxlY3Rpb25zIG9mIG5ldHdvcmtzIChOREV4KSBhbmQgYXBwcyAoQXBwU3RvcmUpLCBhbmQgdGhlIEN5UkVTVCBwcm9ncmFtbWF0aWMgaW50ZXJmYWNlLiBQcm9ncmFtbWF0aWMgYWNjZXNzIGFuZCBpbnRlcmFjdGl2ZSBkaXNwbGF5IHZpYSBSLCBQeXRob24gYW5kIEpTIGVuYWJsZSBhIGJyYW9kIHJhbmdlIG9mIGFwcGxpY2F0aW9ucyBpbiBuZXR3b3JrIGFubGF5c2lzIGFuZCB2aXN1YWxpemF0aW9uLCBsZXZlcmFnaW5nIHRoZSBDeXRvc2NhcGUgRWNvc3lzdGVtLgoKCiMgSW5zdGFsbGF0aW9uCioqUkN5MyoqIGlzIGEgQmlvY29uZHVjdG9yIHBhY2thZ2UgdGhhdCBjb25uZWN0cyBSIHRvIGEgbG9jYWxseSBydW5uaW5nIGluc3RhbmNlIG9mIHRoZSBDeXRvc2NhcGUgZGVza3RvcCBzb2Z0d2FyZSB2aWEgQ3lSRVNULgpgYGB7cn0KaWYoISJSQ3kzIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKICAgIEJpb2NNYW5hZ2VyOjppbnN0YWxsKCJSQ3kzIikKfQpsaWJyYXJ5KFJDeTMpCmBgYAoKVGhlIHdob2xlIHBvaW50IG9mIFJDeTMgaXMgdG8gY29ubmVjdCB3aXRoIEN5dG9zY2FwZS4gWW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIGFuZCBsYXVuY2ggQ3l0b3NjYXBlOiAKCiogRG93bmxvYWQgdGhlIGxhdGVzdCBDeXRvc2NhcGUgZnJvbSBodHRwOi8vd3d3LmN5dG9zY2FwZS5vcmcvZG93bmxvYWQucGhwIAoqIENvbXBsZXRlIGluc3RhbGxhdGlvbiB3aXphcmQKKiBMYXVuY2ggQ3l0b3NjYXBlIAoKQ29uZmlybSB5b3VyIGNvbm5lY3Rpb24gd2l0aCB0aGUgKmN5dG9zY2FwZVBpbmcqIGZ1bmNpdG9uOgpgYGB7cn0KY3l0b3NjYXBlUGluZygpCmBgYAoKIyBMb2FkIE5ldHdvcmsgZnJvbSBOREV4CldlIHdpbGwgaW1wb3J0IGEgbmV0d29yayBmcm9tIE5ERXggaW50byB0aGUgQ3l0b3NjYXBlIGVudmlyb25tZW50LiBOZXR3b3JrcyBhcmUgcHJvdmlkZWQgYSBVbml2ZXJzYWwgVW5pcXVlIElEIChVVUlEKSBieSBOREV4IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsaWFibHkgcmVmZXJlbmNlIGEgcGFydGljdWxhciBuZXR3b3JrLiBUaGUgaW1wb3J0IG1ldGhvZCByZXR1cm5zIGEgQ3l0b3NjYXBlIFNlc3Npb24gVW5pcXVlIElEIChTVUlEKSBmb3IgdGhlIGltcG9ydGVkIG5ldHdvcmssIGVuYWJsaW5nIHVzIHRvIHJlZmVyZW5jZSBpdCBpbiBzdWJzZXF1ZW50IHN0ZXBzIHdpdGhpbiBhIGdpdmVuIEN5dG9zY2FwZSBzZXNzaW9uLgoKYGBge3J9Ck5FVFdPUktfVVVJRCA9ICdmYTc0MDVjZi0zZDdmLTExZWEtYmZkYy0wYWMxMzVlOGJhY2YnICMgVVVJRCBwcm92aWRlZCBieSBOREV4Cm5ldHdvcmtfc3VpZCA8LSBpbXBvcnROZXR3b3JrRnJvbU5ERXgoTkVUV09SS19VVUlEKSAKYGBgCgkKIyBDb3B5IFZpc3VhbCBTdHlsZQpPbmUgb2YgdGhlIGVhc2llc3Qgd2F5cyB0byBhcHBseSBhIHZpc3VhbCBzdHlsZSB0byBhIG5ldHdvcmsgaXMgdG8gY29weSB0aGF0IHN0eWxlIGZyb20gYW5vdGhlciBuZXR3b3JrLiBUaGlzIGxldHMgeW91IHdvcmsgb24gdGhlIHN0eWxlIG9mIHlvdXIgbmV0d29yayBpbiBDeXRvc2NhcGUgdXNpbmcgdGhlIGludGVyYWN0aXZlIHN0eWxlIGVkaXRvciwgdGhlbiBzYXZlIHRoZSBuZXR3b3JrIHRvIE5ERXggZm9yIGZ1dHVyZSB1c2UgYXMgYSB0ZW1wbGF0ZS4KClRoZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZSBuZXR3b3JrIGJlY29tZXMgdGhlIG5hbWUgb2YgaXRzIHN0eWxlIGFuZCB0aGUgKnNldCogbWV0aG9kIGFzc2lnbnMgdGhhdCBzdHlsZSB0byBhbm90aGVyIG5ldHdvcmssIHNwZWNpZmllZCBieSB0aGF0IG5ldHdvcmsncyBTVUlELgpgYGB7cn0KU1RZTEVfTkVUV09SS19VVUlEID0gJzE0NWE2YTQ3LTc4ZWUtMTFlOS04NDhkLTBhYzEzNWU4YmFjZicKc3R5bGVfbmV0d29ya19zdWlkIDwtIGltcG9ydE5ldHdvcmtGcm9tTkRFeChTVFlMRV9ORVRXT1JLX1VVSUQpIApzdHlsZV9uZXR3b3JrX25hbWUgPC0gZ2V0TmV0d29ya05hbWUoc3R5bGVfbmV0d29ya19zdWlkKQpzZXRWaXN1YWxTdHlsZShwYXN0ZTAoc3R5bGVfbmV0d29ya19uYW1lLCctU3R5bGUnKSwgbmV0d29yaz1uZXR3b3JrX3N1aWQpCnNldEN1cnJlbnROZXR3b3JrKG5ldHdvcmtfc3VpZCkKYGBgCgojIEFwcGx5IExheW91dApXZSBjYW4gZWFzaWx5IGFjY2VzcyB0aGUgbGF5b3V0cyBhdmFpbGFibGUgaW4gQ3l0b3NjYXBlLgpgYGB7cn0KZ2V0TGF5b3V0TmFtZXMoKSAjIGV4cGxvcmUgYXZhaWxhYmxlIGxheW91dHMKbGF5b3V0TmV0d29yaygnZm9yY2UtZGlyZWN0ZWQnLCBuZXR3b3JrPW5ldHdvcmtfc3VpZCkKYGBgCgpDeXRvc2NhcGUgbGF5b3V0cyBhbHNvIGhhdmUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB0dW5lZCBmb3IgZWFjaCBuZXR3b3JrCmBgYHtyfQpnZXRMYXlvdXRQcm9wZXJ0eU5hbWVzKCdmb3JjZS1kaXJlY3RlZCcpICMgZXhwbG9yZSBwYXJhbWV0ZXIgb3B0aW9ucwpsYXlvdXROZXR3b3JrKCdmb3JjZS1kaXJlY3RlZCBkZWZhdWx0U3ByaW5nQ29lZmZpY2llbnQ9MUUtNScsIG5ldHdvcms9bmV0d29ya19zdWlkKQpgYGAKCiMgU2F2ZSBOZXR3b3JrIHRvIE5ERXgKVGhlcmUgaXMgYSBvbmUtc3RlcCBtZXRob2QgdG8gc2F2ZSBuZXR3b3JrcyBmcm9tIEN5dG9zY2FwZSB0byBOREV4LiBZb3UgY2FuIGFsc28gY29udHJvbCB3aGV0aGVyIHRoZSBuZXR3b3JrIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUgb3IgcHJpdmF0ZSB0byB5b3VyIGFjY291bnQuCgoqKk5vdGU6KiogQnkgaXRzZWxmLCAicHVibGljIiBkb2VzIG5vdCBtZWFuIHRoYXQgdXNlcnMgY2FuIGZpbmQgdGhlIG5ldHdvcmsgYnkgc2VhcmNoaW5nIE5ERXguIFRoaXMgaXMgc28gdGhhdCBzZWFyY2hlcyBhcmUgbm90IGNsdXR0ZXJlZCBieSBuZXR3b3JrcyB0aGF0IHdlcmUgY29udmVuaWVudCB0byBtYWtlIHB1YmxpYyBidXQgd2hpY2ggYXJlIG5vdCBpbnRlbmRlZCBmb3IgZ2VuZXJhbCB1c2UuIFRvIG1ha2UgYSBuZXR3b3JrIGZpbmRhYmxlIGluIHNlYXJjaGVzLCB5b3UgbmVlZCB0byBnbyB0byB5b3VyIGFjY291bnQgb24gdGhlIE5ERXggc2l0ZSBhbmQgY2hhbmdlIHRoYXQgc2V0dGluZy4gSW4gdGhlIGNvbnRleHQgb2YgYSB0dXRvcmlhbCB3aGVyZSB5b3UgYWNjZXNzIE5ERXggcHJvZ3JhbW1hdGljYWxseSwgeW91IGNhbiBzZWUgaG93IGltcG9ydGFudCB0aGlzIGlzOiBubyBvbmUgd2FudHMgdG8gZmluZCB0aGUgMjAsMDAwIG5ldHdvcmtzIHlvdSBhY2NpZGVudGFsbHkgbG9hZGVkIHRvIHlvdXIgYWNjb3VudCBiZWNhdXNlIG9mIGEgYnVnIGluIHlvdXIgY29kZS4KCmBgYHtyfQpuZXdfbmFtZSA8LSBwYXN0ZTAoZ2V0TmV0d29ya05hbWUobmV0d29ya19zdWlkKSwnLXR1dG9yaWFsJykKcmVuYW1lTmV0d29yayhuZXdfbmFtZSkKClVTRVJOQU1FIDwtIHJlYWRsaW5lKCdFbnRlciB5b3VyIE5ERXggdXNlcm5hbWU6ICcpClBBU1NXT1JEIDw9IHJlYWRsaW5lKCdFbnRlciB5b3VyIE5ERXggcGFzc3dvcmQ6ICcpCmV4cG9ydE5ldHdvcmtUb05ERXgoVVNFUk5BTUUsIFBBU1NXT1JELCBpc1B1YmxpYz1GYWxzZSwgbmV0d29yaz1uZXR3b3JrX3N1aWQpCmBgYAoKCgoKCg==